
public class BinarySearch {
    //题目描述：给定一个 n 个元素有序的（升序）整型数组 nums 和一个目标值 target  ，写一个函数搜索 nums 中的 target，如果 target 存在返回下标，否则返回 -1。
    //你必须编写一个具有 O(log n) 时间复杂度的算法。
    public static int search(int[] nums, int target) {
        for(int left = 0,right = nums.length-1;left <= right;){
            int mid = left + (right - left) / 2;//防止溢出
            if(nums[mid] < target){
                left = mid + 1;
            }else if(nums[mid] > target){
                right = mid - 1;
            }else{
                return mid;
            }
        }
        return -1;
    }
}
